When a user visits a web page, there is often a delay between the time a user requests for content from the web page and the time a network browser finishes displaying the content of the web page. FIG. 1 is an illustration of one example of the types of delay a user may experience in requesting content from the web page.
The process of requesting a web page may start with a user-based action, such as a user clicking a hyperlink anchored on one web page that targets a web page at another website. The request for a new web page may also be automatically generated by the network browser itself or some other program executing on the client device.
A first delay may result from consulting a Domain Name System (“DNS”) server to obtain an Internet Protocol (“IP”) address of a target based on a Uniform Resource Locator (“URL”) identified by a hyperlink. More delay may result as the network browser of the client device tries to establish a connection with a target server in accordance with one or more network protocols, such as the network protocols found in the Internet Protocol Suite. The network itself may introduce its own latency, e.g., the network may be bandwidth limited and information carried by the network may be transmitted through a large number of intervening nodes between the client device and the target server.
After a connection is established, the server may take time to determine the proper response to the request from the network browser; particularly if the web page is dynamically created. For example, the transition to a new web page may result from a user using the network browser to transmit a search request (e.g., the user typed text onto a web page and clicked a search button, which caused the network browser to transmit the search request as a parameter appended to the URL of a different web page).
After the server determines the proper response, the server may begin transmitting the web page and the network browser may start changing the display in response to receiving the web page. For ease of explanation, “server response time” shall refer to the duration between the time of the client device's request for a new web page and the time at which the client device first starts receiving the web page. The server may start by sending information that can be quickly downloaded and displayed, such as the header of a Hypertext Markup Language (“HTML”) document and text-based search results. The network browser may provide some visual indication as soon as the initial information for the web page is received, such as displaying a background color in the main window in lieu of the prior web page.
Depending on the content and structure of the web page, the network browser may thereafter start requesting web page content, such as images displayed as part of the web page. For example, the server may have transmitted the network locations of images to be displayed, which the network browser may request after other information in the web page is received. The images may accordingly be requested by the client device, and the server providing the images may process the request and send an image in response. The client device may also take time to download the image.
For ease of explanation, “image load time” shall refer to the duration between the time of the initial receipt of the web page and the time that the image has finished loading. A network browser typically displays the entire image (assuming it is positioned within the main window of the network browser) as soon as the download of the image is complete—even if the network browser is to download more images. Depending on the structure of the web page and image, portions of the image may be displayed as the image data is received. Accordingly, a single web page may have multiple image load times if the web page contains multiple images.
It will be understood that other components of a web page may also take time to display, such as videos, audio, and content that is dynamically loaded and changeable. One example of dynamically loaded and changeable content are components implemented in Asynchronous JavaScript and Extensible Markup Language (“AJAX”) web pages.
At some point, all of the information associated with the web page is downloaded. For ease of explanation, “web page load time” refers to the duration between the initial receipt of the web page and the time at which all of the information on the web page has been loaded. Many network browsers may prevent a user from fully interacting with the individual content of a web page until the web page is completely loaded.
A user may perceive latency as three or more different durations: the time the user must wait for the web page to begin loading (e.g., server response time) after the user has requested the web page, the time it takes for images to finish loading after the user has requested the web page (shown in the figure as user perceived image latency, which equals server response time plus the image load time), and the time it takes for the entire web page to finish loading after the user has requested the web page. As noted above, there may be a delay in rendering other individual content on a web page as well. If the latency is too long, a user may become frustrated with the services provided by the website.